14.2.- Recollida de dades en format TXT.
Per passar les dades a un fitxer txt (o CSV) cal definir la impressora «PrintWriter eixidatext; » en la secció de definir llibreries a importar. També cal posar dins d'un condicional les ordres per tancar el fitxer que estem escrivint i tancar el programa que són:
eixidatext.close(); // tanca el fitxer
exit();//i atura el programa
També cal escriure el fitxer amb el mètode «eixidatext.println(variables);» com és mostra a l'exemple de baix.
Després d'escriure una línia cal passar més dades al fitxer de text amb el mètode «eixidatext.flush();»
El programa per recollir les dades de temperatura en un fitxer en format csv (txt) és aquest.
// Copyright (C) 2010 MODAT7
// Modificat el 26-04-2013 per Carles Ferrando
// License: GNU GPL ( http://www.gnu.org/licenses/gpl.html )
// En aquest programa llegirem el valor d'un NTC i estimarem el seu valor en graus centígrads
// amb el mètode de Steinhart–Hart per després mostrar els valors de la TºC en un documentt txt (CSV)
//
//importem les llibreries de comunicació per port serie
//i la firmata d'arduino per arduino i la impressora electrònica
import processing.serial.*;
import cc.arduino.*;
PrintWriter eixidatext;
//Clase arduino que representa la targeta Arduino
Arduino arduino;
//Definició de coeficients i constants
float Ventrada=5.0; // [V] Tensió d'entrada al divisor de tensió
float Rauxiliar=10000; // [ohm] Resistència secundaria al divisor de tensió.
float R0=10000; // [ohm] Valor de NTC nominal a 25ºC
float T0=298.15; // [K] (25ºC) Valor en ºK de 25ºC
float beta=3891; // [K] Paràmetre B
float Rinfinit=0.0214906446; // [ohm] Paràmetre Rinfinit
//Definició de variables
float Veixida=0.0; // [V] Tensió donada pel divisor de tensió
float RNTC=0.0; // [ohm] Resistència del NTC
float TempK=0.0;// [K] Temperatura d'eixida en Kelvin
float TempC=0.0;// [ºC] Temperatura d'eixida en Celsius
int pinNTC = 3; // selecciona el pin d'entrada per al sensor de calor
int LecturaNTC=0 ;// El valor analògic llegit pel sensor al pin NTC
float x=0;//comptador de punts inicials.
// Configuració de paràmetres i ports d'entrada i eixida
void setup() {
// Crea un fitxer nou al directori de sketchbook junt a aquest programa
eixidatext = createWriter("TempCtxt.csv");
//L'objecte arduino cal crear-lo en primer lloc abans de llegir altre cap port
arduino = new Arduino(this, Arduino.list()[0], 57600);
//una vegada creat ja puc llegir altres ports (pins)
arduino.pinMode(LecturaNTC, Arduino.INPUT);
}
//Programa principal al bucle
void draw()
{ // Hui és 26 d'abril de 2013 i si és l'hora acordada
// Cal canviar la data i hora d'aturar el programa
if ( day()==26 && month()==04 && hour()==19 && minute()==57){
eixidatext.close(); // tanca el fitxer
exit();//i atura el programa
}
int LecturaNTC = arduino.analogRead(pinNTC); //llegeix valors analògics des del sensor posat al port
Veixida=Ventrada*((LecturaNTC)/1024.0); //Càlcul del valor de voltatge del NTC ara
RNTC=(Rauxiliar*Veixida/(Ventrada-Veixida)); //Càlcul del valor la Resistència del NTC ara
TempK=(beta/log(RNTC/Rinfinit)); //Càlcul de la temperatura estimada de SteinHart-Hart en Kelvins
TempC=TempK-273.15; //Càlcul de la temperatura estimada en Centígrads
println ("T (C)=" + TempC ); //Imprimeix al terminal T en C
println ("T (K)=" + TempK ); //Imprimeix al terminal T en K
delay(1000);//aturem el programa 1000 ms i després fem una lectura
x=x+1;//comptador dades
// Escriu dades al txt
if (x>2){//fins que no hi ha dos punts no podem calcular un valor real ni escriure'l
//fila dades
eixidatext.println(day() + "/" + nf(month(),2) + "/" + year() + " " + hour() + ":" +nf(minute(),2)+ ":"+second() + " "+ ";" + " " + TempC);
}
eixidatext.flush(); // Escriu la resta de dades al fitxer
}
|
La eixida d'aquest programa és un fitxer de text en format csv que podem obrir amb LibreOffice Calc per representar les dades o fer càlculs i regressions línials.
Obri el fitxer csv generat emb el Gedit, Kate, Notepad i canvia el símbol punt «.» per una «,» coma com es veu en la imatge.
A continuació importes el fitxer CSV amb el LibreOffice calc com es veu a la imatge.
I ja pots crear una gràfica amb les dades importades per fer anàlisis de regressió lineal o altres anàlisis estadístics.
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 3.0